// 引入封装的 axio
import adminApi from "../../api/admin";
import { getAdminList, deletaAdmin } from "@/api/admin";
import request from "@/utils/request";
const state = {
  // 管理员数据
  adminList: [],
  // 分页信息
  adminPage: {
    currentPage: 0, // 当前显示页
    total: 0, // 总条数
    size: 0, // 每页显示条数
    totalPage: 0 // 总页数
  }
};

// 获取仓库数据
const getters = {
  // 返回管理员数据
  getAdminListGetter(state) {
    return state.adminList;
  },
  // 返回分页信息
  getAdminPageGetter(state) {
    return state.adminPage;
  }
};

// 修改仓库状态
const mutations = {
  getAdminListMutation(state, payload) {
    state.adminList = payload.rows; // 管理员数据
    state.adminPage.currentPage = payload.currentPage; // 当前显示页
    state.adminPage.total = payload.total; // 总条数
    state.adminPage.size = payload.size; // 每页显示条数
    state.adminPage.totalPage = payload.totalPage; // 总页数
  }
};

// 管理异步请求
const actions = {
  // 注册平台管理员
  async registerAdminAction(context, payload) {
    let obj = {
      username: payload.username,
      password: payload.password,
      name: payload.name,
      age: payload.age,
      gender: payload.gender,
      phone: payload.phone,
      position: "平台管理员", // 职位(平台管理员)
      status: "已通过" // 状态(已通过)
    };
    return await adminApi.regAdmin(obj).then(res => {
      return res;
    });
  },
  // 获取管理员数据
  getAdminListAction(context, payload) {
    getAdminList(payload).then(res => {
      context.commit("getAdminListMutation", res);
    });
  },
  // 条件获取管理员数据
  getAdminConditionAction(context, payload) {
    request
      .get("/admin/adminCondition", { params: payload })
      .then((res) => {
        context.commit("getAdminListMutation", res);
      });
  },
  // 根据 id 删除该条数据
  deleteAdminAction(context, payload) {
    deletaAdmin(payload);
  },
  // 根据 id 修改该条数据
  updateAdminAction(context, payload) {
    adminApi.updateAdmin(payload);
  }
};

export default {
  namespaced: true,
  state,
  getters,
  mutations,
  actions
};
